Record/Play Block

This block lets you record an action that you act out with your robot. It does this by remembering how many times the motors turn on your robot and then replaying the correct number of turns when you select "run" on your Record/Play block and run your program.

For example, you can have the Record/Play block record the motion as you roll a wheeled robot forward and then turn it sharply to the left. Or you might build a robotic arm and record the motion as it shakes hands with you. When you run these recorded motions using a Record/Play block, the wheeled robot will go forward and turn, and the robotic arm will shake hands, in both cases without your help.

To record an action, first choose a name for the action and an estimated time for how long it will take to complete. In the first example above of the wheeled robot, you might call the file "forward and turn" and set the time to 10 seconds.

You would then download the block. When you’re ready, run the program and act out the motion you want to record. When the time is up (10 seconds in this case), the motion you acted out will be saved.

Finally, change the block’s action property from "record" to "play," type the name you gave to the recorded sequence, download the Record/Play block again and run the program. It will repeat (as closely as possible) the acted out motion without your help.

Note: Your recorded movement may not be exactly the same as the movement you acted out.

  1. The displayed icon shows whether the block is set to record or play.

Configuring the Record/Play block:

If you choose to record a Record/Play file, the configuration panel will look like the one above.

  1. Use the text field to name the motion that you are going to act out.
  2. Check the output ports that you would like to record. If you have motors connected to ports B and C, check the B and C checkboxes.
  3. Set the length of time you would like to record in seconds.

If you choose to play an already recorded Record/Play file, the configuration panel will look like the one above.

  1. Type in the file name of the recorded action you want to replay. Files that have already been saved on the NXT will appear in the list in alphabetical order. Select the one you would like to play.

Note: If you record and play an action in the same program, you must remember to type in the same file name in both blocks – the file name will not appear in the list of previously saved actions.

Configuring the Record/Play block’s Data Hub

You can control the Record/Play block dynamically by connecting data wires (from other blocks’ data hubs) to the Record/Play block’s data hub.

Open a block’s data hub by clicking the tab at the lower left edge of the block after it has been placed on the work area.

Data wires carrying input information to a block are connected to the plugs on the left side of its data hub. Data wires carrying output information are connected to the plugs on the right side.

[A] Input plug
[B] Output plug
[C] Number data wire (yellow)
[D] Logic data wire (green)
[E] Text data wire (orange)
[F] Broken data wire (gray)

Passing data from the input plug to the output plug

If an input plug has a corresponding output plug (see A above), the input data will pass through from the input plug to the output plug without being changed. In this case, you can only use the output plug if the input plug is connected to an input data wire; connecting an output data wire to such an output plug without a connected input data wire will cause the output data wire to be "broken" (and colored gray).

Data wires carry specific types of data

Each data wire carries a specific type of data between blocks. For example, if a data wire is dragged from a logic plug on a block’s data hub, it can only be connected to a logic plug on another block’s data hub. The chart below shows what kind of data each plug can accept or send out.

Data wire colors

Data wires are identified with specific colors: wires carrying number data are colored yellow, wires carrying logic data are colored green, and wires carrying text data are colored orange.

"Broken" data wires

If you try to connect a data wire to a plug of the wrong data type, the data wire will be broken (and colored gray). You will not be able to download your program if a data wire is broken.

If you click a broken wire you can read why it is broken in the small help window in the lower right corner of the work area.

Data must be within the possible range of the plug

If an input data wire transmits a value outside the possible range of the plug it is connected to, the block will either ignore the value or change it to a value within its range. For plugs that allow just a few input values (example: just 0, 1, or 2), the plug will ignore the input if a value arrives outside its range.

For plugs that accept larger input ranges (example: 0 – 100), the plug will force any input outside its range to fit. For example, if a Move block’s Power plug receives an input value of 150, the block will change the input value to 100 (i.e., a number within the Power plug’s range).

This chart shows the different characteristics of the plugs on the Record/Play block’s data hub:

  Plug Data Type Possible Range What the Values Mean This Plug is Ignored When...
Action Number 0 - 1 0 = Record, 1 = Play  
Filename Text 15 character maximum Filename to record/play  
Record A Logic True/False True = Record Motor A
False = Don't record Motor A
Action = Play
Record B Logic True/False True = Record Motor B
False = Don't record Motor B
Action = Play
Record C Logic True/False True = Record Motor C
False = Don't record Motor C
Action = Play
Samples per Second Number 0 - 255 Determines how often the motors are sampled during recording Action = Play
Total Time Number 0 - 2147483647 Time to record in milliseconds Action = Play